# Python中的基本数据类型
# 整型、浮点、字符串、布尔、NoneType

# 整型 int
i1 = 1
print(i1, type(i1))

# 浮点 float
f1 = 1.1
print(f1, type(f1))

# 字符串 str
# 使用双引号 表示一个字符串
s1 = "str1"
print(s1, type(s1))
# 使用单引号 表示字符串
s2 = 'str2'
print(s2, type(s2))
s3 = 's'
print(s2, type(s3))

# 布尔类型 bool
# True or False
b1 = True
b2 = False
print(b1, type(b1))
print(b2, type(b2))

# 空类型 NoneType
n1 = None
print(n1, type(n1))

# 类型转换
# int()、str()、float()、bool()
# str to int
# Java: Integer.parseInt()
str3 = "111"
int1 = int(str3)
print(int1, type(int1))

# xdkfj;akkadsjf;k1032395u

# int to str
str4 = str(123)
print(str4, type(str4))
# to bool
# bool(需要转换的值)
# 对于整型、浮点类型的数 to bool
# 除0以外都是True
int1 = 1  # True
int2 = 0  # False
float1 = 0.0  # False
float2 = 1.11111  # True

# 对于str to bool
# 除空字符串以外都是True
str1 = "0"  # True
str2 = "1"  # True
str3 = "False"  # True
str4 = "True"  # True
str5 = ""  # False

print(bool(int1), bool(int2), bool(str1)
      , bool(str2), bool(str3), bool(str4)
      , bool(str5), bool(float1), bool(float2))

# False
print(bool(None))
# to float
# float(需要转换的值)

# 算数运算符
# + - * /
# // ** %
intA = 10
intB = 3

print(intA + intB)
print(intA - intB)
print(intA * intB)
print(intA / intB)
# a**b 表示a的b次方
print(intA ** intB)
# a//b 表示a/b向下取整
print(intA // intB)
# 取余数
print(intA % intB)

a = 2
b = 3
c = 2
# 8**2 or 2**9
print(a ** b ** c)
# 从后往前算
print(a ** (b ** c))
# 从前往后算
print(10 // 5 // 2)
